導(dǎo)讀:說(shuō)的簡(jiǎn)單易懂一些,網(wǎng)絡(luò)爬蟲(chóng)跟你使用的〖離線(xiàn)閱讀〗工具差不多。說(shuō)離線(xiàn),其實(shí)還是要跟網(wǎng)絡(luò)聯(lián)結(jié),否則怎么抓東西下來(lái)?那么不同的地方在哪里?1)網(wǎng)絡(luò)爬蟲(chóng)高度可配置性。2)網(wǎng)絡(luò)爬蟲(chóng)可以解
發(fā)表日期:2020-04-25
文章編輯:興田科技
瀏覽次數(shù):7479
標(biāo)簽:
說(shuō)的簡(jiǎn)單易懂一些,網(wǎng)絡(luò)爬蟲(chóng)跟你使用的〖離線(xiàn)閱讀〗工具差不多。說(shuō)離線(xiàn),其實(shí)還是要跟網(wǎng)絡(luò)聯(lián)結(jié),否則怎么抓東西下來(lái)?那么不同的地方在哪里?
1)網(wǎng)絡(luò)爬蟲(chóng)高度可配置性。
2)網(wǎng)絡(luò)爬蟲(chóng)可以解析抓到的網(wǎng)頁(yè)里的鏈接
3)網(wǎng)絡(luò)爬蟲(chóng)有簡(jiǎn)單的存儲(chǔ)配置
4)網(wǎng)絡(luò)爬蟲(chóng)擁有智能的根據(jù)網(wǎng)頁(yè)更新分析功能
5)網(wǎng)絡(luò)爬蟲(chóng)的效率相當(dāng)?shù)母?/p>
那么依據(jù)特征,其實(shí)也就是要求了,如何設(shè)計(jì)爬蟲(chóng)呢?要注意哪些步驟呢?
1)url 的遍歷和紀(jì)錄
這點(diǎn) larbin 做得非常的好,其實(shí)對(duì)于url的遍歷是很簡(jiǎn)單的,例如:
cat [what you got] tr " n gawk '{print $2}' pcregrep ^http://
就可以得到一個(gè)所由的 url 列表
2)多進(jìn)程 VS 多線(xiàn)程
各有優(yōu)點(diǎn)了,現(xiàn)在一臺(tái)普通的pC 例如 booso.com 一天可以輕松爬下5個(gè)G的數(shù)據(jù)。大約20萬(wàn)網(wǎng)頁(yè)。
3)時(shí)間更新控制
最傻的做法是沒(méi)有時(shí)間更新權(quán)重,一通的爬,回頭再一通的爬。
通常在下一次爬的的數(shù)據(jù)要跟上一次進(jìn)行比較,如果連續(xù)5次都沒(méi)有變化,那么將爬這個(gè)網(wǎng)頁(yè)的時(shí)間間隔擴(kuò)大1倍。
如果一個(gè)網(wǎng)頁(yè)在連續(xù)5次爬取的時(shí)候都有更新,那么將設(shè)置的爬取時(shí)間縮短為原來(lái)的1/2。
注意,效率是取勝的關(guān)鍵之一。
4)爬的深度是多少呢?
看情況了。如果你比較牛,有幾萬(wàn)臺(tái)服務(wù)器做網(wǎng)絡(luò)爬蟲(chóng),我勸您跳過(guò)這一點(diǎn)。
如果你同我一樣只有一臺(tái)服務(wù)器做網(wǎng)絡(luò)爬蟲(chóng),那么這樣一個(gè)統(tǒng)計(jì)您應(yīng)該知道:
網(wǎng)頁(yè)深度:網(wǎng)頁(yè)個(gè)數(shù):網(wǎng)頁(yè)重要程度
0 : 1 : : 10
1 :20 : :8
2: :600: :5
3: :2000: :2
4 above: 6000: 一般無(wú)法計(jì)算
好了,爬到三級(jí)就差不多了,再深入一是數(shù)據(jù)量擴(kuò)大了3/4倍,二是重要度確下降了許多,這叫做“種下的是龍種,收獲的是跳蚤。
5)爬蟲(chóng)一般不之間爬對(duì)方的網(wǎng)頁(yè),一般是通過(guò)一個(gè)proxy出去,這個(gè)proxy有緩解壓力的功能,因?yàn)楫?dāng)對(duì)方的網(wǎng)頁(yè)沒(méi)有更新的時(shí)候,只要拿到 header 的 tag就可以了,沒(méi)有必要全部傳輸一次了,可以大大節(jié)約網(wǎng)絡(luò)帶寬。
apache webserver里面紀(jì)錄的 304 一般就是被cache的了。
6)請(qǐng)有空的時(shí)候照看一下robots.txt
7)存儲(chǔ)結(jié)構(gòu)。
這個(gè)人人見(jiàn)智,google 用 gfs 系統(tǒng),如果你有7/8臺(tái)服務(wù)器,我勸你用NFS系統(tǒng),要是你有70/80個(gè)服務(wù)器的話(huà)我建議你用afs 系統(tǒng),要是你只有一臺(tái)服務(wù)器,那么隨便。
給一個(gè)代碼片斷,是我寫(xiě)的新聞搜索引擎是如何進(jìn)行數(shù)據(jù)存儲(chǔ)的:
NAME=echo $URL perl -p -e 's/([^w-.@])/$1 eq "n" ? "n":sprintf("%%%2.2x",ord($1))/eg'mkdir -p $AUTHOR
newscrawl.pl$URL--user-agent="news.booso.com+(+http://booso.com)"-outfile=$AUTHOR/$NAME
特別是注意以下幾句:
1.通常在下一次爬的的數(shù)據(jù)要跟上一次進(jìn)行比較,如果連續(xù)5次都沒(méi)有變化,那么將爬這個(gè)網(wǎng)頁(yè)的時(shí)間間隔擴(kuò)大1倍,如果一個(gè)網(wǎng)頁(yè)在連續(xù)5次爬取的時(shí)候都有更新,那么將設(shè)置的爬取時(shí)間縮短為原來(lái)的1/2。
網(wǎng)頁(yè)更新頻度嚴(yán)重影響著搜索引擎蜘蛛程度對(duì)網(wǎng)站的爬行,爬取次數(shù)越多意味著網(wǎng)頁(yè)收錄幾率會(huì)越大、收錄數(shù)量越多,收錄是SEO最基礎(chǔ)的一個(gè)環(huán)節(jié)。
2.好了,爬到三級(jí)就差不多了,再深入一是數(shù)據(jù)量擴(kuò)大了3/4倍,二是重要度確下降了許多,這叫做“種下的是龍種,收獲的是跳蚤。
盡量將網(wǎng)站保持在三級(jí)目錄內(nèi),深層次的網(wǎng)頁(yè)會(huì)給搜索引擎帶來(lái)很大的壓力,當(dāng)然,我想Google有足夠的服務(wù)器來(lái)承擔(dān)這些壓力,但從側(cè)面來(lái)說(shuō),3層目錄下的網(wǎng)頁(yè)被抓取及更新的頻度要低很多。前面,我說(shuō)過(guò),要想辦法使網(wǎng)站物理結(jié)構(gòu)和邏輯結(jié)構(gòu)吻合,這體現(xiàn)于URL的良好設(shè)計(jì),現(xiàn)在你可以檢查下前臺(tái)生成的靜態(tài)網(wǎng)頁(yè)的實(shí)際目錄有幾層,考慮是否可以?xún)?yōu)化
上一篇:
暫無(wú)信息更多新聞
2020
關(guān)于seo,首先獲得更多精準(zhǔn)客戶(hù)。 有需求的用戶(hù),基本都會(huì)在網(wǎng)上搜索關(guān)鍵詞,找到自己想要的內(nèi)容,企業(yè)網(wǎng)站做了SEO優(yōu)化,網(wǎng)站部署的關(guān)鍵詞,有了好的排名,那么就有
View details
2020
關(guān)于官網(wǎng)優(yōu)化,其實(shí)吧想要做好網(wǎng)站外部鏈接。然而SEO說(shuō)簡(jiǎn)單也簡(jiǎn)單,說(shuō)復(fù)雜也復(fù)雜。團(tuán)隊(duì)運(yùn)用的是否為正規(guī)的技術(shù)? 我個(gè)人曾經(jīng)用過(guò)一些非正規(guī)技術(shù),但是經(jīng)過(guò)一
View details
2020
關(guān)于網(wǎng)站優(yōu)化,關(guān)鍵詞搜索是網(wǎng)絡(luò)搜索索引主要方法之一,就是訪(fǎng)問(wèn)者希望了解的產(chǎn)品、服務(wù)和公司等的具體名稱(chēng)用語(yǔ)。選擇流量穩(wěn)定的關(guān)鍵詞。下面小編告訴大
View details
2020
關(guān)于關(guān)鍵詞排名,對(duì)于網(wǎng)站建設(shè)前期的一個(gè)規(guī)劃關(guān)系著一個(gè)網(wǎng)站建設(shè)得是否成功,網(wǎng)站建設(shè)前需明確建設(shè)網(wǎng)站的目的,確定網(wǎng)站的功能和規(guī)模,進(jìn)行必要的市場(chǎng)分析,只
View details